package com.singleResponsibility;

/**
 * 单一职责方案二
 * 根据交通工具运行方法不同，分解成不同类，
 * 马路上跑的新建一个LoadVehicle内部类
 * 天空上跑的新建一个AirVehicle内部类，这样就根据运行类型来调用对应得类了
 * 这样虽然遵守了单一职责，但是若来个在水里运行得那么还需要再新建一个内部类，
 * 或者说再来10个不同的运行类型，那么还需继续创建10个不同的内部类。
 * 方案二得弊端就体现出来了，开销大，改动多
 *
 *
 */
public class Signle2 {

    public static void main(String[] args) {
        LoadVehicle loadVehicle=new LoadVehicle();
        loadVehicle.run("摩托车");
        loadVehicle.run("汽车");
        AirVehicle airVehicle=new AirVehicle();
        airVehicle.run("飞机");

    }
}


/**
 * 公路上跑的
 */
class LoadVehicle{

    public void run(String vehicle){
        System.out.println(vehicle+" 在公路上跑...........");
    }
}

/**
 * 天空上跑的
 */
class AirVehicle{
    public void run(String vehicle){
        System.out.println(vehicle+" 在天空上跑...........");
    }
}


